package com.xq.string;

/**
 * @author jltxseo
 *         Created by junlintianxia on 2017/07/09.
方式一：String a = “aaa” ;

方式二：String b = new String(“aaa”);

两种方式都能创建字符串对象，但方式一要比方式二更优。
因为字符串是保存在常量池中的，而通过new创建的对象会存放在堆内存中。
一：常量池中已经有字符串常量”aaa”

通过方式一创建对象，程序运行时会在常量池中查找”aaa”字符串，将找到的”aaa”字符串的地址赋给a。
通过方式二创建对象，无论常量池中有没有”aaa”字符串，程序都会在堆内存中开辟一片新空间存放新对象。
一：常量池中没有字符串常量”aaa”

通过方式一创建对象，程序运行时会将”aaa”字符串放进常量池，再将其地址赋给a。
通过方式二创建对象，程序会在堆内存中开辟一片新空间存放新对象，同时会将”aaa”字符串放入常量池，相当于创建了两个对象。
 */

public class StringNewTest {

    public static void main(String[] args){
        String a = "aaa";
        String b = "aaa";
        String c = new String("aaa");
        System.out.println("a==b:"+(a == b));
        System.out.println("a==c:"+(a == c));
        System.out.println("a与b的值相等:"+(a.equals(c)));
    }
}
